layui.use(['layer', 'form',"tableSelect",'laydate','table','upload'], function () {
    var layer = layui.layer
        , form = layui.form
        , $ = layui.$
        , table = layui.table
        , laydate = layui.laydate
        , tableSelect = layui.tableSelect
        , upload = layui.upload;

    table.render({
        elem: '#mytable'//表格的ID
        ,url: 'SelectTa'//表格的数据源 controller里的方法
        ,cellMinWidth: 95 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
        ,width: '300px'
        ,height:'full-180'
        ,toolbar:'#TaToolBar'//通过工具条的ID来区分
        ,height:'full-180'
        ,page: true//开启分页
        ,limit:5//默认进去每页显示5条
        ,limits:[5,10,15]//自己设置下拉列表5,10,15，行
        ,cols: [[ //表头
            {type: 'checkbox', field: 'left'}
            ,{field: 'taId', title: '交易数据Id',width:130, align:'center'}
            ,{field: 'accountName', title: '现金账户名称',align:'center'}
            ,{field: 'fundName', title: '基金名称',align:'center'}
            ,{field: 'quantity', title: '数量',  align:'center'}
            ,{field: 'cost', title: '费用',  align:'center'}
            ,{field: 'unitPrice', title: '单价',  align:'center'}
            ,{field: 'money', title: '总金额',  align:'center'}
            ,{field: 'practicalMoney', title: '实际金额',  align:'center'}
            ,{field: 'dealTime', title: '交易日期', align:'center'}
            ,{field: 'endTime', title: '结算日期', align:'center'}
            ,{field: 'commissionAgents', title: '代销机构',  align:'center',templet: function(item){
                    if(item.commissionAgents=='3') {
                        return '建设银行';
                    } else if(item.commissionAgents=='2') {
                        return '工商银行';
                    }else if(item.commissionAgents=='1'){
                        return '农业银行';
                    }
                }}
            ,{field: 'dealType', title: '交易类型',  align:'center',templet: function(item){
                    if(item.dealType=='3') {return '认购';
                    } else if(item.dealType=='2'){ return '赎回';
                    } else if(item.dealType=='1'){ return '申购';
                    }
                }}
            ,{field: 'dealState', title: '基金类型',  align:'center',templet: function(item){
                    if(item.dealState=='1'){
                        return "<span style='color: green'>已结算</span>";
                    }else  if(item.dealState=='2'){
                        return "<span style='color: #ff0000'>未结算</span>";
                    }
                }}
            ,{fixed: 'right', field: 'operation', title: '操作', width: 160, align: 'center', toolbar: '#toolEventDemo'}
        ]]
    });

    table.on('toolbar(mytable)', function (obj) {
        //获取选中复选框的对象，
        var checkStatus=table.checkStatus(obj.config.id);//得到表格选中行的ID
        //监控工具条的事件处理方法
        //判断 点击的是工具栏 当中的哪个按钮 要根据按钮的 lay-event 属性来加以区分
        switch (obj.event) {
            case 'add':
                layer.open({
                    type:1,
                    title:'新增TA交易数据窗口',
                    closeBtn:1,
                    move:false,
                    content:$("#addta"), //引用下面用户新增界面的ID（内容）div的ID
                    btn:[],
                    area:['800px','500px']
                })
                form.render();//表格对象的重新加载方法
                break;

            case 'deleteAll':
                var data1=obj.data;//获取当前行数据
                var layEvent=obj.event;//获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
                var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
                var data = checkStatus.data;
                if(data.length==0){
                    layer.msg("请至少选择一条数据",)
                }else {
                    var taId=[];
                    for (var i = 0; i <data.length; i++) {
                        taId.push(data[i].taId);
                    }
                    //这里是多选删除的
                    layer.confirm('真的删除行么',{icon:2}, function(index){
                        //是否确定删除 是就删 取消就不删
                        layer.closeAll();
                        alert(taId);
                        $.ajax({
                            type:"post",
                            url:"DeleteTa?taId="+taId,//跟删除的是一个方法
                            //field:ids.join(','),
                            data:data1,
                            success:function (msg){
                                //刷新表格
                                table.reload("mytable")//mytable 是表格的ID
                                location.reload();//刷新,第二种刷新方式，比如第四页只有一条数据，你把它删除了，它就会显示无数据，我们要显示的是前面三页数据，所以就再拿location.leload();再刷新一次
                            }
                        })
                    })
                }
                break;
            case 'search':
                // alert('模糊查询');
                //模糊查询的代码
                //table.reload();//表格对象的重新加载方法

                var dealTime = $("#dealTime").val();
                var dealType=$("#dealType").val();
                var dealState=$("#dealState").val();
                console.log(dealTime);
                console.log(dealType);
                console.log(dealState);
                // alert('username' + ",");
                // alert('userid' + ",");
                //重新把表格渲染了一遍 mytable是表格的ID
                table.reload('mytable',
                    {
                        //查询的条件
                        where: {
                            'dealTime': dealTime,
                            'dealType':dealType,
                            'dealState':dealState

                        },
                        //page设定默认当前页为1 current 当前的
                        page: {
                            curr: 1
                        }
                    });
                //进行搜索之后不再让值消失，除非自己清空
                $("#dealTime").val(dealTime);
                $("#dealType").val(dealType);
                $("#dealState").val(dealState);
                break;
        }
    });

    //文件上传
    upload.render({
        elem: '#TaShengou'
        ,url: '../api/uploadTA' //改成您自己的上传接口
        ,data: {}
        ,accept: 'file'     //允许上传的文件类型
        ,acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
        ,exts: 'xls|xlsx'   //文件后缀
        ,size: 10000           //最大允许上传的文件大小
        ,done: function(object, index, upload){ //上传后的回调
            layer.alert(object.msg);
            table.reload('mytable', {});
            return false;
        }
    });

    //文件上传
    upload.render({
        elem: '#TaShuhui'
        ,url: '../api/uploadTAtwo' //改成您自己的上传接口
        ,data: {}
        ,accept: 'file'     //允许上传的文件类型
        ,acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
        ,exts: 'xls|xlsx'   //文件后缀
        ,size: 10000           //最大允许上传的文件大小
        ,done: function(object, index, upload){ //上传后的回调
            layer.alert(object.msg);
            table.reload('mytable', {});
            return false;
        }
    });

    //新增表单提交
    //新增提交  form.on 提交事件的方法，第一个参数 submit(表单layfilter)
    form.on('submit(addta)',function (data){
        console.log(data)
        //1表单数据   formData的意思是表单数据
        var formData=$('#addForm').serialize();
        //2:发送请求到后台去进行保存
        $.post("InsertTa",formData,function (msg){
            alert("从后台传过来的数据：" + msg);
            if(msg>0){
                //3)窗口关闭
                //4)表格刷新 selectSysUser:重新进查询的方法查一次，在界面上显示
                table.reload('SelectTa');
                //5)给予提示
                layer.msg('添加成功',{
                    title : '提示',
                    area : [ '200px',
                        '140px' ],
                    time : 2,//自动关闭时间
                    btn : [ '确认' ]
                });
                layer.closeAll();//关闭所有窗口
            }else{

                //5)给予提示
                layer.msg('添加失败',{
                    title : '提示',
                    area : [ '200px',
                        '140px' ],
                    time : 2,//自动关闭时间
                    btn : [ '确认' ]
                });
                layer.closeAll();//关闭所有窗口
            }
        });
        $("#addForm").reset();//表单重置
        return false;
    });

    //删除和修改
    table.on('tool(mytable)',function (obj) {//'tool(mytable)' 是 body 里table表格的 lay-filter="mytable"
        var data1 = obj.data;//获取当前行数据
        var layEvent = obj.event;//获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
        //是否点击删除
        if (layEvent == 'del') {
            var data = obj.data;//得到删除行整行的数据
            layer.confirm('真的删除行么', {icon: 2}, function (index) {
                //是否确定删除 是就删 取消就不删
                layer.closeAll();
                console.log(data.taId)
                $.ajax({
                    type: "post",
                    url: "DeleteTa",
                    data: {taId: data.taId}, //发送数据
                    success: function (msg) {
                        //刷新表格
                        table.reload("mytable")//mytable 是表格的ID
                        location.reload();//刷新,第二种刷新方式，比如第四页只有一条数据，你把它删除了，它就会显示无数据，我们要显示的是前面三页数据，所以就再拿location.leload();再刷新一次
                    }
                })
            })
        } else if (layEvent === 'edit') {
            var data1 = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            //form.val('表单的filter',JSON对象)给表单赋值
            //$.parseJSON()吧JSON字符串转为JSON对象
            //$JSON.stringify() 把表格的行对象数据转化为JSON格式的字符串
            //data1 获取当前行的数据
            form.val('myFrom', $.parseJSON(JSON.stringify(data1)));
            var  formData=form.val("myFrom")
            if(formData.dealState==2) {
                var index = layer.open({
                    //type 为1 弹出一个界面 默认为0 弹出信息框
                    type: 1,
                    //标题
                    title: '编辑TA交易数据',
                    //关闭按钮 默认值为1 有两种 1,2 不许要则为0
                    closeBtn: 1,
                    //不允许拖动
                    move: false,
                    content: $("#updateTa"),//内容
                    btn: [],
                    //宽高
                    area: ['800px', '500px'],
                });
            }
        }
    });
    //修改表单提交
    form.on('submit(updateTa)',function (){// 这个updateSysUser 是跟修改submit的 lay-filter 名字一样
        var  formData=form.val("myFrom")
        console.log(formData)//打印语句
        $.ajax({
            type:"post",
            url:"UpdateTa",
            data:formData,
            success:function (msg){
                //刷新表格
                table.reload("mytable")//mytable 是表格的ID,一整个
                layer.closeAll();
            }
        })
        return false;
    })

    //新增查询现金账户下拉表单
    tableSelect.render({
        elem: '#accountName1'
        , table: {
            url: 'SelectCash'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'accountName', title: '账户名称'},
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.accountName);// 你要id显示在文本框里，你就填id，要名字就填name
               $("#accountName1").val(item.accountName);// 你要id显示在文本框里，你就填id，要名字就填name
               $("#cashId1").val(item.cashId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })


    //新增查询基金下拉表单
    tableSelect.render({
        elem: '#fundName1'
        , table: {
            url: 'SelectFund'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'fundName', title: '基金名称'},
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.fundName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundName1").val(item.fundName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundId1").val(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })
    //修改查询现金账户下拉表单
    tableSelect.render({
        elem: '#accountName2'
        , table: {
            url: 'SelectCash'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'accountName', title: '账户名称'},
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.accountName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#accountName2").val(item.accountName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#cashId2").val(item.cashId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })


    //修改查询基金下拉表单
    tableSelect.render({
        elem: '#fundName2'
        , table: {
            url: 'SelectFund'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'fundName', title: '基金名称'},
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.fundName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundName2").val(item.fundName);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundId2").val(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })

    laydate.render({
        elem: '#dealTime'
    });
    //新增
    laydate.render({
        elem: '.dateStr2'
    });
    laydate.render({
        elem: '.dateStr3'
    });
    //修改
    laydate.render({
        elem: '.dateStr4'
    });
    laydate.render({
        elem: '.dateStr5'
    });
});

//取消框
function quxiao(){
    layer.closeAll();
}